<script setup lang="ts">
	import Stars from '../Sub/Stars.vue';

	defineOptions({
		name: 'KtvListSub',
	});

	const props = defineProps({
		data: {
			type: Object,
			default: () => ({})
		}
	});
</script>

<template>
	<div class="ktv-item">
		<router-link :to="{path: '/detail', query: {field: 'ktv', id: props.data.id}}">
			<div class="img">
				<img class="ktv-img" v-lazy="props.data.img" :alt="props.data.name" />
			</div>
			<div class="info">
				<h1 class="title">{{props.data.name}}</h1>
				<p class="stars">
					<stars :starNum="Number(props.data.star)"></stars>
					<span class="score">{{props.data.score}}分</span>
				</p>
				<div class="others">
					<span class="item">
						￥<span class="price">{{props.data.defaultPrice}}</span>元起
					</span>
					<span class="item">{{props.data.cityName}}</span>
				</div>
			</div>
		</router-link>
	</div>
</template>

<style lang="scss" scoped>
	@import '../../../assets/styles/mixins.scss';
	@import '../../../assets/styles/variables.scss';

	.ktv-item {
		position: relative;
		border-bottom: 1px solid #ddd;
		background-color: #fff;

		.img {
			width: 1.2rem;
			height: 1.2rem;
			padding: .1rem;
			box-sizing: border-box;

			.ktv-img {
				width: 100%;
				height: 100%;
			}
		}

		.info {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			padding: .1rem .1rem 0 1.2rem;
			box-sizing: border-box;

			.title {
				@include ellipsis;
				font-size: .18rem;
				color: #000;
				line-height: .2rem;
			}

			.stars {
				font-size: .14rem;
				line-height: .5rem;

				.score {
					color: $starColor;
				}
			}

			.others {
				display: flex;
				justify-content: space-between;
				font-size: .14rem;
				line-height: .35rem;

				&:nth-child(1) {
					color: $defaultOrange;
				}

				.price {
					font-size: .2rem;
					color: $defaultGreen;
				}
			}
		}
	}
</style>
















